function getStyle(obj,name)
    {
        if(obj.currentStyle)
        {
            return obj.currentStyle[name];
        }
        else
        {
            return getComputedStyle(obj,false)[name];
        }
     };
    function change(obj,json,fnt){
       clearInterval(obj.timer);
       obj.timer=setInterval(function(){
         for(var attr in json)
        {
            var cur=0;
            if(attr=='opacity')
            {
                 cur=Math.round(parseFloat(getStyle(obj,attr))*100);
            }
            else
            {
                cur=parseInt(getStyle(obj,attr));
            }
            var speed=(json[attr]-cur)/6;
            speed=speed>0?Math.ceil(speed):Math.floor(speed);
            if(json[attr]==cur)
            {
                clearInterval(obj.timer);
                if(fnt())
                {
                    fnt();
                }
            }
            else
            {
                if(attr=='opacity')
                {
                    obj.style.filter='alpha(opacity:'+(cur+speed)+')';
                    obj.style.opacity=(cur+speed)/100;
                }
                else
                {
                    obj.style[attr]=cur+speed+'px';
                }
                
                
            }
        }
        },30);
    };